Release 10.1A: OpenEdge Development:
ADM Reference
calltablett.p procedure
External procedure that allows a single RUN statement to invoke a call using a temp-table that defines the parameter values. The temp-table can be in any of the formats supported by the include file. If a temp-table of type 1 or 2 is used, the parameters to the called object are not type checked. If a temp-table of type 3 or 4 is used, the call has to be to a function or an internal procedure in a persistent procedure, and the signature is checked against the internal entries before the call is made. This variation of
adm2/calltable.psupports the passing in of up to 64 temp-tables. For additional information, see the "callstringtt.p" section, the "calltable.p" section, and the "calltables.i" section.All outputs and return values from the invoked procedure are available through the rows in the returned temp-table.
Parameters:pcCallNam INPUT CHARACTERName of an external or internal procedure or function to be invoked.
pcTarget INPUT CHARACTERName of a manager procedure, the filename of a relatively or absolutely pathed procedure, or an integer value that evaluates to a procedure handle. If the value of this parameter is
""or?, by default, pcCallName contains the name of a procedure that is to be run nonpersistently.This parameter is optional. If nothing is specified, then
""or?is passed.pcTargetFlags INPUT CHARACTERThis parameter can contain modifiers that are used to invoke the persistent procedure. A modifier can be a valid combination of the following:
- P(ersistent) — Indicates that a new instance of the procedure should be instantiated persistently and left running.
- A(DM2) — Indicates that a new instance of an ADM2 procedure should be invoked persistently and the initializeObject internal procedure called to initialize it. The ADM2 procedure is left running after the call is complete.
- S(ingle) — Indicates that a new instance of the procedure should be instantiated if a running version is not found and left running.
- K(ill) — Indicates that if a procedure was instantiated during the call, it should be deleted before control is returned.
The default is to apply the behavior of the S parameter. That is, a persistent procedure is started if it is not found by walking the procedure stack and it is left running after the call is complete.
You can specify any of the P, A, or S modifiers in combination with K to shut down the procedure. For example, PK instructs the caller to instantiate a new instance of the procedure persistently and delete it when it is complete.
This parameter is optional. If nothing is specified, then
""is passed.pcHandlesToSkip INPUT CHARACTERBy default the call wrapper runs DELETE OBJECT on tables that are listed in phCallTableHandle01 through 64 before returning. This avoids memory leaks caused by the duplication of temp-tables. In some cases this behavior might be undesirable, such as when the table being returned is a dynamics temp-table that should be retained in the cache on the server.
To address this issue, this parameter allows a comma- separated list of numbers between 1 and 64 corresponding to the handles below. If a number is found in the list, the corresponding handle is not deleted in the procedure prior to returning control to the caller.
Note: Using an*in aCAN-DOlist indicates that none of the handles should be deleted.This parameter is optional. If nothing is specified, then
""is passed.phCallParmTT INPUT HANDLEHandle to a temp-table that could be either of the temp-tables defined in a or a temp-table that was previously created by a call to one of the setupTTFrom functions. The output values from the call are written back into this table after the call has been invoked. If this parameter is not specified and there are parameters to the procedure or function, the parameters have to be specified in the phCallParmTH parameter.
This parameter is optional. If nothing is specified, then
?is passed.phCallParmTH INPUT-OUTPUT TABLE-HANDLESimilar to phCallParmTT except that a TABLE-HANDLE is passed to support AppServer calls. The table is passed as an INPUT-OUTPUT parameter so that the return values can be returned to the client.
This parameter is optional. If nothing is specified, then
?is passed.phCallTableHandle01 to phCallTableHandle64 INPUT-OUTPUTTABLE-HANDLETable-handle that needs to be passed into the call.
This parameter is optional. If nothing is specified, then
Notes:?is passed.
- Once the procedure has finished executing, all temporary handles are deleted and the ttCall record no longer exists for the call. As a result, the Dynamics Call Wrapper has no information about this call so that there are no memory leaks created by calling
callstring.p.- The caller is responsible for cleaning up phCallParmTT, phCallParmTH, and the phCallTempTable or phCallTableHandle objects.
- When the execution passes to
callstringtt.p, the procedure creates an array of 64 handles and stores the values of the handles passed into the array. As a result, a temp-table is copied only when required to invoke the call.- If phCallParmTT is specified, it is used to determine the parameters to the call. Otherwise phCallParmTH is used. If neither are specified, the call is attempted with no parameters.
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |